草庐IT

c++ - ofstream 指针的 vector

全部标签

c - 等待文件解锁 - Windows

我正在为大学编写一个TFTP服务器程序,它需要独占访问它打开以供阅读的文件。因此,可以配置为如果一个文件被另一个进程锁定,它会等待文件解锁。在Win32上有什么方法可以等待文件解锁而不先为它创建句柄吗?我问的原因是,如果另一个进程调用CreateFile()使用与我的进程使用的不兼容的dwShareMode,我什至无法使用LockFileEx()获得用于等待锁定的文件句柄.提前感谢您的帮助! 最佳答案 如果您查看StackOverflow问题WhatWin32APIcanbeusedtofindtheprocessthathasag

c - 如何多播(发送)到第一个网卡?

我最近发现,如果我有一个拨号连接(这是用于信息亭)和一个局域网连接,当拨号连接建立时(通过互联网访问),我的多播sendto将默认为拨号而不是我的LANNIC。这使得多播发送到拨号连接,而不是发送到我有多个多播订阅者的LAN。我知道我需要使用IP_MULTICAST_IF来设置我的多播套接字上的接口(interface)。问题是如何枚举接口(interface)以及如何在setsockopt中使用IP_MULTICAST_IF?在WindowsXPEmbedded信息亭上,始终只有一个本地连接NIC。我如何获得此接口(interface)并将其IP地址(这是IP_MULTICAST_I

捕捉 WM_DEVICECHANGE

如何知道WM_DEVICECHANGE的到来?WndProc被覆盖。我收到了所有消息,但没有一条是WM_DEVICECHANGE类型的。RegisterDeviceNotification使链接器提示找不到函数!所以我陷入了这个巫毒魔法。请帮忙。P.S.:当然,我已经用谷歌搜索和stackoverflowing(笑)所有这些东西大约8个小时了。intCALLBACKWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow){LPTSTRlolclassname="lolclass";WNDC

c - _beginthread 和 WaitForSingleObject

我正在实现一个启动4个线程的程序。函数是:void*SOURCE_in(structSOURCE_1*);void*SOURCE_out(structSOURCE*);void*SINK_out(structSINK_1*);void*SINK_in(structSINK*);这些函数允许4个block之间进行通信。Block1与Block2通信。block2与第三block共享信息。Block3与Block4进行信息通信。我的问题在main.c中intmain(intargc,char**argv){externintp,e_source,e_sink_1,l_sink,l_sour

java - 在关闭远程桌面连接时运行 s/w

我想在关闭/断开远程桌面连接时运行一个应用程序。有什么方法可以在windowsxp/win7中记录远程桌面session的开始-停止时间。 最佳答案 您可以编写Windows服务并监听SERVICE_CONTROL_SESSIONCHANGE。该事件的参数之一是session状态,在这种情况下,您可能会对WTS_SESSION_LOGON/WTS_SESSION_LOGOFF或WTS_REMOTE_CONNECT/WTS_REMOTE_DISCONNECT感兴趣,具体取决于您的需要。 关

c - 如何在 Windbg 中打印 C 结构的数据

在Windows调试器中,我试图打印出传递给c函数的数据。我对传递到System_Data_SQLite!sqlite3_step+0x63的数据很感兴趣。0:071>kv20Child-SPRetAddr:ArgstoChild:CallSite00000000`11b82e2800000642`ff864776:00000000`12f6f45000000000`0092dcd800000000`11b8348800000000`11b83480:ntdll!NtGetContextThread+0xa00000000`11b82e3000000000`12f6f450:00000

c++ - C++ 中的 Memory Tracker 在 vector 初始化期间进入无限循环

我正在尝试通过重载new和delete运算符在C++中编写内存跟踪器。但它会进入循环并一次又一次地调用new。以下是我的代码。#ifndefMEMORY_TRACKER_H_#defineMEMORY_TRACKER_H_#pragmawarning(disable:4290)#pragmacomment(lib,"Dbghelp.lib")#include#include#include#include#include#include#includestaticconstintMAX_TRACES=62;staticconstintMAX_LENGTH=256;staticconst

c++ - 链接到系统 C 库 msvcrt.dll

在Windows中,有一个默认的C库msvcrt.dll。是否可以编写仅使用msvcrt.dll函数的简单C程序?这样就无需安装最新的VC运行时。我认为一种可能的方法是显式指定/NODEFAULTLIB,并使用dll导入过程导入msvcrt.dll函数。有人知道吗? 最佳答案 您可以使用MinGW-w64GCC,它链接到msvcrt.dll正是出于您所说的原因。您可以找到下载here.如果您不想重新分发任何DLL,您可以使用-static-libgcc-static-libstdc++链接您的程序。也就是说,您只需将msvcr*.d

c - eventfd 是否有 Windows 等效项?

我正在编写一个模拟套接字行为的跨平台库,在两者之间具有附加功能(应用程序->mylib->套接字)。我希望它对程序员来说尽可能透明,因此select和poll等原语必须相应地与这个lib一起工作。问题是当数据在真实套接字中变得可用(例如)时,它必须经过很多处理,所以如果select指向真实套接字fd,应用程序将被阻塞很多时间。我希望选择/轮询仅在准备好使用数据时(在我的库完成所有处理之后)解除阻塞。所以我遇到了这个eventfd,它允许我做我想做的事,即在给定的fd上操纵选择/轮询行为。由于我对Linux环境比较熟悉,所以我不知道eventfd在windows中的作用是什么。尝试搜索但

c - 超时后如何关闭上下文菜单?

我需要让上下文菜单(当前使用TrackPopupMenu创建)在一段时间不活动后自动关闭。我试图搜索但只找到相反的东西(如何在超时后激活弹出窗口)或特定应用程序的专门内容。我发现唯一接近的事情是枚举桌面的子项,直到找到类名为#32768的窗口——这将是菜单——然后关闭它。我希望有更好、更清晰的方法。有什么建议吗? 最佳答案 发送WM_CANCELMODE向托管上下文菜单的父窗口发送消息。 关于c-超时后如何关闭上下文菜单?,我们在StackOverflow上找到一个类似的问题: